package rmi.client;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.ArrayList;

import data.SeatInterface;

import model.CardInterface;
import model.ChosenAction;
import model.UserInterface;

public interface Client extends Remote
{
	public void setUser(UserInterface user) throws RemoteException;
	
	public UserInterface getUser() throws RemoteException;
	
	public void updateBoard(int gameId, ArrayList<CardInterface> cards) throws RemoteException;
	
	public void updateHand(int gameId, ArrayList<CardInterface> cards) throws RemoteException;
	
	public ChosenAction chooseAction(int gameId) throws RemoteException;
	
	public void setTurnSeatIndex(int gameId, int seatIndex) throws RemoteException;
	
	public void updateSeat(SeatInterface seat) throws RemoteException;
	
	public void sendChatMessage(int gameId, UserInterface user, String message) throws RemoteException;
	
	public void serverClosed() throws RemoteException;
}
